#ifndef POPUP_IMAGE_VIEWER_HPP
#define POPUP_IMAGE_VIEWER_HPP

#include <QtGui>
#include <QMutex>
#include <queue>
#include <vector>
#include <PopupGui.hpp>

struct PopupImage;
struct PopupImageFx;

class PopupImageViewer : public QDialog {
   
  Q_OBJECT
 
public:
  PopupImageViewer();
  virtual ~PopupImageViewer();

private:
  QMutex mutex;
  PopupImage *m_current;
  QTimer timer;
  std::queue<PopupImage*> m_imageQueue;

  void paintEvent(QPaintEvent*);
  virtual void mousePressEvent(QMouseEvent * event);
  bool showImage();
  void next();

public slots:
  virtual void slot_showImage(const QString & p_image,
                              const QString & p_sender,
                              bool p_forceFullscreen);

private slots:
  virtual void animate();
};

#endif
